home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / windownt / mkecr5.zip / OEMSETUP.INF < prev    next >
INI File  |  1993-07-24  |  19KB  |  578 lines

  1. ;-----------------------------------------------------------------------
  2. ; OPTION TYPE
  3. ; -----------
  4. ; This identifies the Option type we are dealing with.  The different
  5. ; possible types are:
  6. ;
  7. ; COMPUTER, VIDEO, POINTER, KEYBOARD, LAYOUT, SCSI, TAPE, PRINTER, ...
  8. ;-----------------------------------------------------------------------
  9.  
  10. [Identification]
  11.     OptionType = SCSI
  12.  
  13. ;-----------------------------------------------------------------------
  14. ; LANGUAGES SUPPORTED
  15. ; -------------------
  16. ;
  17. ; The languages supported by the INF, For every language supported
  18. ; we need to have a separate text section for every displayable text
  19. ; section.
  20. ;
  21. ;-----------------------------------------------------------------------
  22.  
  23. [LanguagesSupported]
  24.     ENG
  25.  
  26.  
  27. ;-----------------------------------------------------------------------
  28. ; OPTION LIST
  29. ; -----------
  30. ; This section lists the Option key names.  These keys are locale
  31. ; independent and used to represent the option in a locale independent
  32. ; manner.
  33. ;
  34. ;-----------------------------------------------------------------------
  35.  
  36. [Options]
  37.     "OEMSCSI"    = mkecr5xx
  38.  
  39. ;-----------------------------------------------------------------------
  40. ; OPTION TEXT SECTION
  41. ; -------------------
  42. ; These are text strings used to identify the option to the user.  There
  43. ; are separate sections for each language supported.  The format of the
  44. ; section name is "OptionsText" concatenated with the Language represented
  45. ; by the section.
  46. ;
  47. ;-----------------------------------------------------------------------
  48.  
  49. [OptionsTextENG]
  50.     "OEMSCSI"    = "Matsushita-Kotobuki Cr-52x/56x"
  51.  
  52. ;-----------------------------------------------------------------------------------------
  53. ; SCSI MINIPORT DRIVERS:
  54. ;
  55. ; Order of the information:
  56. ;
  57. ; Class driver = Type, Group, ErrorControl, Tag, EventMessageFile, TypesSupported
  58. ;
  59. ;-----------------------------------------------------------------------------------------
  60.  
  61. [MiniportDrivers]
  62.     mkecr5xx  = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, %SystemRoot%\System32\IoLogMsg.dll , 7
  63.  
  64. ;---------------------------------------------------------------------------2
  65. ;
  66. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  67. ;                as we are choosing currently.
  68. ;
  69. ; INPUT:         None
  70. ;
  71. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  72. ;                $($R1): Option Type (COMPUTER ...)
  73. ;                $($R2): Diskette description
  74. ;---------------------------------------------------------------------------
  75.  
  76. [Identify]
  77.     ;
  78.     ;
  79.     read-syms Identification
  80.  
  81.     set Status     = STATUS_SUCCESSFUL
  82.     set Identifier = $(OptionType)
  83.     set Media      = #("Source Media Descriptions", 1, 1)
  84.  
  85.     Return $(Status) $(Identifier) $(Media)
  86.  
  87.  
  88.  
  89. ;------------------------------------------------------------------------
  90. ; 2. ReturnOptions:
  91. ;
  92. ; DESCRIPTION:   To return the option list supported by this INF and the
  93. ;                localised text list representing the options.
  94. ;
  95. ;
  96. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  97. ;
  98. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  99. ;                                STATUS_NOLANGUAGE
  100. ;                                STATUS_FAILED
  101. ;
  102. ;                $($R1): Option List
  103. ;                $($R2): Option Text List
  104. ;------------------------------------------------------------------------
  105.  
  106. [ReturnOptions]
  107.     ;
  108.     ;
  109.     set Status        = STATUS_FAILED
  110.     set OptionList     = {}
  111.     set OptionTextList = {}
  112.  
  113.     ;
  114.     ; Check if the language requested is supported
  115.     ;
  116.     set LanguageList = ^(LanguagesSupported, 1)
  117.     Ifcontains(i) $($0) in $(LanguageList)
  118.         goto returnoptions
  119.     else
  120.         set Status = STATUS_NOLANGUAGE
  121.         goto finish_ReturnOptions
  122.     endif
  123.  
  124.     ;
  125.     ; form a list of all the options and another of the text representing
  126.     ;
  127.  
  128. returnoptions = +
  129.     set OptionList     = ^(Options, 0)
  130.     set OptionTextList = ^(OptionsText$($0), 1)
  131.     set Status         = STATUS_SUCCESSFUL
  132.  
  133. finish_ReturnOptions = +
  134.     Return $(Status) $(OptionList) $(OptionTextList)
  135.  
  136.  
  137. ;
  138. ; 3. InstallOption:
  139. ;
  140. ; FUNCTION:  To copy files representing Options
  141. ;            To configure the installed option
  142. ;            To update the registry for the installed option
  143. ;
  144. ; INPUT:     $($0):  Language to use
  145. ;            $($1):  OptionID to install
  146. ;            $($2):  SourceDirectory
  147. ;            $($3):  AddCopy  (YES | NO)
  148. ;            $($4):  DoCopy   (YES | NO)
  149. ;            $($5):  DoConfig (YES | NO)
  150. ;
  151. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  152. ;                            STATUS_NOLANGUAGE |
  153. ;                            STATUS_USERCANCEL |
  154. ;                            STATUS_FAILED
  155. ;
  156.  
  157. [InstallOption]
  158.  
  159.     ;
  160.     ; Set default values for
  161.     ;
  162.     set Status = STATUS_FAILED
  163.     set DrivesToFree = {}
  164.  
  165.     ;
  166.     ; extract parameters
  167.     ;
  168.     set Option   = $($1)
  169.     set SrcDir   = $($2)
  170.     set AddCopy  = $($3)
  171.     set DoCopy   = $($4)
  172.     set DoConfig = $($5)
  173.  
  174.     ;
  175.     ; Check if the language requested is supported
  176.     ;
  177.     set LanguageList = ^(LanguagesSupported, 1)
  178.     Ifcontains(i) $($0) in $(LanguageList)
  179.     else
  180.         set Status = STATUS_NOLANGUAGE
  181.         goto finish_InstallOption
  182.     endif
  183.     read-syms Strings$($0)
  184.  
  185.     ;
  186.     ; check to see if Option is supported.
  187.     ;
  188.  
  189.     set OptionList = ^(Options, 0)
  190.     ifcontains $(Option) in $(OptionList)
  191.     else
  192.         Debug-Output "SCSI.INF: SCSI option is not supported."
  193.         goto finish_InstallOption
  194.     endif
  195.     set OptionList = ""
  196.  
  197.     ;
  198.     ; Option has been defined already
  199.     ;
  200.  
  201.     set MiniportDriver   =   #(Options,         $(Option),         1)
  202.     set Type             = $(#(MiniportDrivers, $(MiniportDriver), 1))
  203.     set Group            =   #(MiniportDrivers, $(MiniportDriver), 2)
  204.     set ErrorControl     = $(#(MiniportDrivers, $(MiniportDriver), 3))
  205. ;
  206. ;***********************************************************************;
  207. ;  93/07/08                                ;
  208. ;  The Tag value is invalid for mke card.                ;
  209. ;   set Tag              =   #(MiniportDrivers, $(MiniportDriver), 4)    ;
  210. ;***********************************************************************;
  211. ;
  212.     set EventMessageFile =   #(MiniportDrivers, $(MiniportDriver), 4)
  213.     set TypesSupported   =   #(MiniportDrivers, $(MiniportDriver), 5)
  214.  
  215.     set Start            =   $(!SERVICE_BOOT_START)
  216.  
  217. installtheoption = +
  218.  
  219.     ;
  220.     ; Code to add files to copy list
  221.     ;
  222.  
  223.     ifstr(i) $(AddCopy) == "YES"
  224.         set DoActualCopy = NO
  225.         set FileToCheck = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
  226.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck)
  227.         ifstr(i) $(STATUS) == NO
  228.             set DoActualCopy = YES
  229.         endif
  230.  
  231.         ifstr(i) $(DoActualCopy) == NO
  232.             shell "subroutn.inf" DriversExist $($0) $(String1)
  233.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  234.                 Debug-Output "SCSI.INF: shelling DriversExist failed"
  235.                 goto finish_InstallOption
  236.             endif
  237.  
  238.             ifstr(i) $($R0) == STATUS_CURRENT
  239.             else-ifstr(i) $($R0) == STATUS_NEW
  240.                 set DoActualCopy = YES
  241.             else-ifstr(i) $($R0) == STATUS_USERCANCEL
  242.                 Debug-Output "SCSI.INF: User cancelled SCSI installation"
  243.                 goto finish_InstallOption
  244.             else
  245.                 Debug-Output "SCSI.INF: Error reported in DriversExist routine in SUBROUTN.INF"
  246.                 goto finish_InstallOption
  247.             endif
  248.         endif
  249.  
  250.         ifstr(i) $(DoActualCopy) == YES
  251.  
  252.             shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2)
  253.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  254.                 Debug-Output "SCSI.INF: shelling DoAskSourceEx failed"
  255.                 goto finish_InstallOption
  256.             endif
  257.  
  258.             ifstr(i) $($R0) == STATUS_SUCCESSFUL
  259.                 set SrcDir = $($R1)
  260.                 ifstr(i) $($R2) != ""
  261.                     set DrivesToFree = >($(DrivesToFree), $($R2))
  262.                 endif
  263.             else
  264.                 Debug-Output "SCSI.INF: User cancelled asking source."
  265.                 goto finish_InstallOption
  266.             endif
  267.  
  268.             install Install-AddCopyOption
  269.             ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
  270.                 Debug-Output "Adding SCSI files to copy list failed"
  271.                 goto finish_InstallOption
  272.             endif
  273.         else
  274.             set DoCopy = NO
  275.         endif
  276.  
  277.     endif
  278.  
  279.     ifstr(i) $(DoCopy) == "YES"
  280.         read-syms ProgressCopy$($0)
  281.         install Install-DoCopyOption
  282.         ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
  283.             Debug-Output "Copying files failed"
  284.             goto finish_InstallOption
  285.         else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
  286.             set Status = STATUS_USERCANCEL
  287.             goto finish_InstallOption
  288.         endif
  289.     endif
  290.  
  291.     ifstr(i) $(DoConfig) == "YES"
  292.         ;
  293.         ; first run a privilege check on modifying the setup node
  294.         ;
  295.  
  296.         shell "registry.inf" CheckSetupModify
  297.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  298.             goto finish_InstallOption
  299.         endif
  300.  
  301.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  302.             goto finish_InstallOption
  303.         endif
  304.  
  305.         ;
  306.         ; then make a new SCSI entry, the entry is created automatically
  307.         ; enabled
  308.         ;
  309.  
  310.         set ServiceNode   = $(MiniportDriver)
  311.         set ServiceBinary = System32\drivers\#(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
  312.  
  313.         set ServicesValues   = { +
  314.                 {Type,           0, $(!REG_VT_DWORD),     $(Type)                  }, +
  315.                 {Start,          0, $(!REG_VT_DWORD),     $(Start)                 }, +
  316.                 {Group,          0, $(!REG_VT_SZ),        $(Group)                 }, +
  317.                 {ErrorControl,   0, $(!REG_VT_DWORD),     $(ErrorControl)          }, +
  318. ;
  319. ;***********************************************************************;
  320. ;  93/07/08                                ;
  321. ;  The Tag value is invalid for mke card.                ;
  322. ;                {Tag,            0, $(!REG_VT_DWORD),     $(Tag)       ;       ;    }, +                                ;
  323. ;***********************************************************************;
  324. ;
  325.                 {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary)         }  +
  326.                 }
  327.         set ParametersValues = ""
  328.         set DeviceValues     = {}
  329.         set EventLogValues   = { +
  330.                 {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, +
  331.                 {TypesSupported,   0, $(!REG_VT_DWORD),     $(TypesSupported)   }  +
  332.                 }
  333.  
  334.         shell "registry.inf"  MakeServicesEntry $(ServiceNode)      +
  335.                                                 $(ServicesValues)   +
  336.                                                 $(ParametersValues) +
  337.                                                 $(DeviceValues)     +
  338.                                                 $(EventLogValues)   +
  339.                                                 Parameters
  340.  
  341.  
  342.  
  343.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  344.             Debug-Output "Couldn't execute MakeServicesEntry in registry.inf"
  345.             goto finish_InstallOption
  346.         endif
  347.  
  348.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  349.             Debug-Output "MakeServicesEntry failed for SCSI"
  350.             goto finish_InstallOption
  351.         endif
  352.  
  353.     endif
  354.  
  355.     set Status = STATUS_SUCCESSFUL
  356. finish_InstallOption = +
  357.     ForListDo $(DrivesToFree)
  358.         LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
  359.     EndForListDo
  360.  
  361.     Return $(Status)
  362.  
  363.  
  364. [Install-AddCopyOption]
  365.  
  366.     ;
  367.     ; Add the files to the copy list
  368.     ;
  369.     AddSectionKeyFileToCopyList   Files-ScsiMiniportDrivers         +
  370.                                   $(MiniportDriver)                 +
  371.                                   $(SrcDir)                      +
  372.                                   $(!STF_WINDOWSSYSPATH)\drivers
  373.  
  374.     exit
  375.  
  376.  
  377. [Install-DoCopyOption]
  378.  
  379.     ;
  380.     ; Copy files in the copy list
  381.     ;
  382.     CopyFilesInCopyList
  383.     exit
  384.  
  385. ;-------------------------------------------------------------------------
  386. ; 4. DeInstallOption:
  387. ;
  388. ; FUNCTION:  To remove files representing Option
  389. ;            To remove the registry entry corresponding to the Option
  390. ;
  391. ; INPUT:     $($0):  Language to use
  392. ;            $($1):  OptionID to install
  393. ;
  394. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  395. ;                            STATUS_NOLANGUAGE |
  396. ;                            STATUS_USERCANCEL |
  397. ;                            STATUS_FAILED
  398. ;-------------------------------------------------------------------------
  399. [DeInstallOption]
  400.     ;
  401.     ; Set default values for
  402.     ;
  403.     set Status   = STATUS_FAILED
  404.     ;
  405.     ; extract parameters
  406.     ;
  407.     set Option   = $($1)
  408.  
  409.     ;
  410.     ; Check if the language requested is supported
  411.     ;
  412.     set LanguageList = ^(LanguagesSupported, 1)
  413.     Ifcontains(i) $($0) in $(LanguageList)
  414.     else
  415.         set Status = STATUS_NOLANGUAGE
  416.         goto finish_DeInstallOption
  417.     endif
  418.     read-syms Strings$($0)
  419.  
  420.     ;
  421.     ; check to see if Option is supported.
  422.     ;
  423.  
  424.     set OptionList = ^(Options, 0)
  425.     ifcontains $(Option) in $(OptionList)
  426.     else
  427.         goto finish_DeInstallOption
  428.     endif
  429.     set OptionList = ""
  430.  
  431.     ;
  432.     ; fetch details about option
  433.     ;
  434.  
  435.     set MiniportDriver = #(Options, $(Option), 1)
  436.     set MiniportFile   = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
  437.     set FilePath       = $(!STF_WINDOWSSYSPATH)"\drivers\"$(MiniportFile)
  438.  
  439.     ;
  440.     ; check to see if file is installed
  441.     ; if not give success
  442.     ;
  443.  
  444.     LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath)
  445.     ifstr(i) $(STATUS) == "NO"
  446.         set Status = STATUS_SUCCESSFUL
  447.         goto finish_DeInstallOption
  448.     endif
  449.  
  450.     shell "registry.inf" GetServicesEntryStart $(MiniportDriver)
  451.     ifstr(i) $($R0) != "STATUS_SUCCESSFUL"
  452.         ; this could happen if there is no start value or there is no
  453.         ; key, in which case the option is not installed
  454.         set Status = STATUS_SUCCESSFUL
  455.         goto finish_DeInstallOption
  456.     endif
  457.  
  458.     ifstr(i) $($R1) == $(!SERVICE_BOOT_START)
  459.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(String3)
  460.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  461.             goto do_removal
  462.         endif
  463.         ifstr(i) $($R1) == "CANCEL"
  464.             goto finish_DeInstallOption
  465.         endif
  466.     endif
  467.  
  468. do_removal =+
  469.     ;
  470.     ; disable the registry entry
  471.     ;
  472.  
  473.     shell "registry.inf" RemoveServicesEntry $(MiniportDriver)
  474.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  475.         Debug-Output "SCSI.INF: Failed to shell RemoveServicesEntry"
  476.         goto finish_DeInstallOption
  477.     endif
  478.  
  479.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  480.         Debug-Output "SCSI.INF: Failed to disable services entry"
  481.         goto finish_DeInstallOption
  482.     endif
  483.  
  484.     ;
  485.     ; we won't remove the file because we can only do so during the next boot.
  486.     ; if the user chooses to reinstall the same driver during this boot
  487.     ; he will still end up deleting the driver on next boot. if the file
  488.     ; should be deleted a warning should be put up saying that the user should
  489.     ; not try to reinstall the driver during this boot
  490.     ;
  491.     ;    AddFileToDeleteList $(FilePath)
  492.  
  493.     set Status = STATUS_SUCCESSFUL
  494.  
  495. finish_DeInstallOption =+
  496.     return $(Status)
  497.  
  498.  
  499. ;-------------------------------------------------------------------------
  500. ; 5. GetInstalledOptions:
  501. ;
  502. ; FUNCTION:  To find out the list of options which are installed
  503. ;
  504. ; INPUT:     $($0): Language to Use
  505. ;
  506. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  507. ;                            STATUS_FAILED
  508. ;
  509. ;            $($R1): List of options installed
  510. ;            $($R2): Option installed Text List
  511. ;-------------------------------------------------------------------------
  512. [GetInstalledOptions]
  513.     set Status = STATUS_FAILED
  514.     set InstalledOptions = {}
  515.     set InstalledOptionsText = {}
  516.  
  517.     ;
  518.     ; Check if the language requested is supported
  519.     ;
  520.     set LanguageList = ^(LanguagesSupported, 1)
  521.     Ifcontains(i) $($0) in $(LanguageList)
  522.     else
  523.         set Status = STATUS_NOLANGUAGE
  524.         goto finish_GetInstalledOptions
  525.     endif
  526.  
  527.     set OptionList = ^(Options, 0)
  528.     ForListDo $(OptionList)
  529.         set MiniportDriver = #(Options, $($), 1)
  530.         set MiniportFile   = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
  531.         set FilePath       = $(!STF_WINDOWSSYSPATH)"\drivers\"$(MiniportFile)
  532.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath)
  533.         ifstr(i) $(STATUS) == "YES"
  534.             shell "registry.inf" GetServicesEntryStart $(MiniportDriver)
  535.             ifint $($ShellCode) == $(!SHELL_CODE_OK)
  536.                 ifstr(i) $($R0) == STATUS_SUCCESSFUL
  537.                     ifstr(i) $($R1) != $(!SERVICE_DISABLED)
  538.  
  539.                         set OptionText = #(OptionsText$($0), $($), 1)
  540.                         set InstalledOptions     = >($(InstalledOptions), $($))
  541.                         set InstalledOptionsText = >($(InstalledOptionsText), $(OptionText))
  542.  
  543.                     endif
  544.                 endif
  545.             endif
  546.         endif
  547.     EndForListDo
  548.     set Status = STATUS_SUCCESSFUL
  549. finish_GetInstalledOptions =+
  550.     Return $(Status) $(InstalledOptions) $(InstalledOptionsText)
  551.  
  552.  
  553. ;**************************************************************************
  554. ; PROGRESS GUAGE VARIABLES
  555. ;**************************************************************************
  556.  
  557. [ProgressCopyENG]
  558.     ProCaption   = "Windows NT Setup"
  559.     ProCancel    = "Cancel"
  560.     ProCancelMsg = "Windows NT is not correcly installed.  Are you sure you want "+
  561.                    "to cancel copying files?"
  562.     ProCancelCap = "Setup Message"
  563.     ProText1     = "Copying:"
  564.     ProText2     = "To:"
  565.  
  566. [StringsENG]
  567.     String1 = "SCSI Adapter"
  568.     String2 = "Please enter the full path to the OEM SCSI "+
  569.               "Adapter files.  Then choose Continue."
  570.     String3 = "The SCSI Adapter has been marked as a boot device.  Removing "+
  571.               "it may cause the system not to boot."$(!LF)$(!LF)"Are you sure "+
  572.               "you want to remove the Adapter."
  573.  
  574. [Source Media Descriptions]
  575.     1  = "OEM DISK (SCSI)"  , TAGFILE = mkedisk
  576.  
  577. [Files-ScsiMiniportDrivers]
  578. mkecr5xx = 1,mkecr5xx.sys , SIZE=38912